/***************************************************************************/
/* Procedimiento: bdEmpresasInsertar
/* Descripcion:   Insertar o Modifica una fila en la tabla Empresas
/* Parametros:    ?InfoParametros
/*                pTransaccion. Numero identificador de la Transaccion
/*                pMensaje. Mensaje de comfirmacion o excepcion
/* Comentarios:         
/****************************************************************************/

PROCEDURE bdEmpresasInsertarModificar(prazonsocial VARCHAR2, prfc VARCHAR2, pemailgral VARCHAR2, 
								pcalle VARCHAR2, pnumext VARCHAR2, pnumint VARCHAR2, 
								pcolonia VARCHAR2, pentidad VARCHAR2, pestado VARCHAR2, 
								pcp VARCHAR2,  pTransaccion OUT NUMBER, pMensaje OUT VARCHAR2)
AS
vExisteRegistro NUMBER(1);
BEGIN
  SELECT count(*)
  INTO   vExisteRegistro
  FROM   Empresas
  WHERE  nidDocumento=pNidDocumento;
  
  IF vExisteRegistro=0 THEN
    INSERT INTO Empresas
	           (empresa, razonsocial, rfc, 
				emailgral, calle, numext, 
				numint, colonia, entidad, 
				estado, cp)
    VALUES     (seq_Empresas.nextval, prazonsocial, prfc, 
				pemailgral, pcalle, pnumext, 
				pnumint, pcolonia, pentidad, 
				pestado, pcp);
  ELSE
    UPDATE Empresas
    SET    razonsocial=prazonsocial, rfc=prfc, 
			emailgral=pemailgral, calle=pcalle, numext=pnumext, 
			numint=pnumint, colonia=pcolonia, entidad=pentidad, 
			estado=pestado, cp=pcp
    WHERE  nidDocumento=pNidDocumento;
  END IF;
  
  COMMIT;
  pTransaccion := 1;
  pMensaje := 'Terminado OK';
  dbms_output.put_line('Terminado OK');

EXCEPTION
  WHEN OTHERS THEN
    pTransaccion := 0;
    pMensaje := 'Error en bdEmpresas_InsertarModificar:' || SQLCODE || ' Mensaje: ' || sqlerrm;
    dbms_output.put_line('Error en bdEmpresas_InsertarModificar:' || SQLCODE || ' Mensaje: ' || sqlerrm);
END;
